home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / Program_La1759096192004.psc / program launcher / frmMain.frm < prev    next >
Text File  |  2004-06-18  |  23KB  |  697 lines

  1. VERSION 5.00
  2. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  4. Begin VB.Form frmMain 
  5.    Appearance      =   0  'Flat
  6.    BackColor       =   &H00C0C0C0&
  7.    BorderStyle     =   1  'Fixed Single
  8.    Caption         =   "Program Launcher"
  9.    ClientHeight    =   3945
  10.    ClientLeft      =   0
  11.    ClientTop       =   0
  12.    ClientWidth     =   6390
  13.    BeginProperty Font 
  14.       Name            =   "Tahoma"
  15.       Size            =   8.25
  16.       Charset         =   0
  17.       Weight          =   400
  18.       Underline       =   0   'False
  19.       Italic          =   0   'False
  20.       Strikethrough   =   0   'False
  21.    EndProperty
  22.    Icon            =   "frmMain.frx":0000
  23.    LinkTopic       =   "Form1"
  24.    LockControls    =   -1  'True
  25.    MaxButton       =   0   'False
  26.    MinButton       =   0   'False
  27.    ScaleHeight     =   3945
  28.    ScaleWidth      =   6390
  29.    Begin VB.Timer Timer1 
  30.       Interval        =   100
  31.       Left            =   2640
  32.       Top             =   1770
  33.    End
  34.    Begin VB.PictureBox Picture1 
  35.       AutoSize        =   -1  'True
  36.       BackColor       =   &H00FF0000&
  37.       Height          =   3705
  38.       Left            =   150
  39.       ScaleHeight     =   3645
  40.       ScaleWidth      =   6105
  41.       TabIndex        =   15
  42.       Top             =   150
  43.       Width           =   6165
  44.       Begin VB.OptionButton optPredefined 
  45.          BackColor       =   &H00E0E0E0&
  46.          Caption         =   "Predefined"
  47.          ForeColor       =   &H00000000&
  48.          Height          =   285
  49.          Left            =   4890
  50.          Style           =   1  'Graphical
  51.          TabIndex        =   26
  52.          Top             =   2370
  53.          Visible         =   0   'False
  54.          Width           =   1095
  55.       End
  56.       Begin VB.OptionButton optUser 
  57.          Caption         =   "User Defined"
  58.          Height          =   285
  59.          Left            =   3750
  60.          Style           =   1  'Graphical
  61.          TabIndex        =   25
  62.          Top             =   2370
  63.          Value           =   -1  'True
  64.          Visible         =   0   'False
  65.          Width           =   1095
  66.       End
  67.       Begin VB.CheckBox chkWin 
  68.          Appearance      =   0  'Flat
  69.          BackColor       =   &H00E0E0E0&
  70.          Caption         =   "Win"
  71.          ForeColor       =   &H00000000&
  72.          Height          =   315
  73.          Left            =   1140
  74.          Style           =   1  'Graphical
  75.          TabIndex        =   4
  76.          Top             =   2760
  77.          Width           =   675
  78.       End
  79.       Begin VB.CommandButton cmdFolder 
  80.          Appearance      =   0  'Flat
  81.          BackColor       =   &H00E0E0E0&
  82.          Height          =   345
  83.          Left            =   540
  84.          MaskColor       =   &H80000005&
  85.          Picture         =   "frmMain.frx":030A
  86.          Style           =   1  'Graphical
  87.          TabIndex        =   3
  88.          ToolTipText     =   " Select target folder... "
  89.          Top             =   2730
  90.          Width           =   345
  91.       End
  92.       Begin VB.TextBox txtFileName 
  93.          BackColor       =   &H00FF0000&
  94.          BorderStyle     =   0  'None
  95.          ForeColor       =   &H00FFFFFF&
  96.          Height          =   285
  97.          Left            =   210
  98.          Locked          =   -1  'True
  99.          TabIndex        =   1
  100.          Top             =   2400
  101.          Width           =   5685
  102.       End
  103.       Begin VB.CommandButton cmdFile 
  104.          Appearance      =   0  'Flat
  105.          BackColor       =   &H00E0E0E0&
  106.          Height          =   345
  107.          Left            =   150
  108.          MaskColor       =   &H80000005&
  109.          Picture         =   "frmMain.frx":7EEC
  110.          Style           =   1  'Graphical
  111.          TabIndex        =   2
  112.          ToolTipText     =   " Select target file... "
  113.          Top             =   2730
  114.          Width           =   345
  115.       End
  116.       Begin VB.CommandButton cmdHelp 
  117.          Appearance      =   0  'Flat
  118.          BackColor       =   &H00E0E0E0&
  119.          Caption         =   "&Help"
  120.          Height          =   315
  121.          Left            =   4080
  122.          MaskColor       =   &H80000005&
  123.          Style           =   1  'Graphical
  124.          TabIndex        =   13
  125.          ToolTipText     =   " About Program Launcher, Usage and Error Lookup "
  126.          Top             =   3240
  127.          Width           =   945
  128.       End
  129.       Begin VB.CommandButton cmdLaunch 
  130.          Appearance      =   0  'Flat
  131.          BackColor       =   &H00E0E0E0&
  132.          Caption         =   "&Launch"
  133.          Height          =   315
  134.          Left            =   2100
  135.          MaskColor       =   &H80000005&
  136.          Style           =   1  'Graphical
  137.          TabIndex        =   11
  138.          ToolTipText     =   " Launch selected file "
  139.          Top             =   3240
  140.          Width           =   945
  141.       End
  142.       Begin MSComctlLib.ListView lstvwPrograms 
  143.          Height          =   2085
  144.          Left            =   120
  145.          TabIndex        =   0
  146.          Top             =   120
  147.          Width           =   5865
  148.          _ExtentX        =   10345
  149.          _ExtentY        =   3678
  150.          View            =   3
  151.          LabelEdit       =   1
  152.          LabelWrap       =   -1  'True
  153.          HideSelection   =   0   'False
  154.          FullRowSelect   =   -1  'True
  155.          _Version        =   393217
  156.          ForeColor       =   16777215
  157.          BackColor       =   16711680
  158.          Appearance      =   0
  159.          NumItems        =   0
  160.       End
  161.       Begin VB.CommandButton cmdClose 
  162.          Appearance      =   0  'Flat
  163.          BackColor       =   &H00E0E0E0&
  164.          Caption         =   "&Exit"
  165.          Height          =   315
  166.          Left            =   5070
  167.          MaskColor       =   &H80000005&
  168.          Style           =   1  'Graphical
  169.          TabIndex        =   14
  170.          ToolTipText     =   " Stop using Program Launcher "
  171.          Top             =   3240
  172.          Width           =   945
  173.       End
  174.       Begin VB.PictureBox picTray 
  175.          BackColor       =   &H00FF0000&
  176.          BorderStyle     =   0  'None
  177.          Height          =   480
  178.          Left            =   5430
  179.          Picture         =   "frmMain.frx":9BE6
  180.          ScaleHeight     =   480
  181.          ScaleWidth      =   450
  182.          TabIndex        =   19
  183.          Top             =   2730
  184.          Width           =   450
  185.       End
  186.       Begin VB.CommandButton cmdHide 
  187.          Appearance      =   0  'Flat
  188.          BackColor       =   &H00E0E0E0&
  189.          Cancel          =   -1  'True
  190.          Caption         =   "Hi&de"
  191.          Height          =   315
  192.          Left            =   3090
  193.          MaskColor       =   &H80000005&
  194.          Style           =   1  'Graphical
  195.          TabIndex        =   12
  196.          ToolTipText     =   " Hide Program Launcher (Press Win+A to make visible) "
  197.          Top             =   3240
  198.          Width           =   945
  199.       End
  200.       Begin VB.CommandButton cmdDelete 
  201.          Appearance      =   0  'Flat
  202.          BackColor       =   &H00E0E0E0&
  203.          Caption         =   "&Remove"
  204.          Height          =   315
  205.          Left            =   1110
  206.          MaskColor       =   &H80000005&
  207.          Style           =   1  'Graphical
  208.          TabIndex        =   10
  209.          ToolTipText     =   " Delete selected shortcut "
  210.          Top             =   3240
  211.          Width           =   945
  212.       End
  213.       Begin VB.CheckBox chkCtrl 
  214.          Appearance      =   0  'Flat
  215.          BackColor       =   &H00E0E0E0&
  216.          Caption         =   "Ctrl"
  217.          ForeColor       =   &H00000000&
  218.          Height          =   315
  219.          Left            =   2010
  220.          Style           =   1  'Graphical
  221.          TabIndex        =   5
  222.          Top             =   2760
  223.          Width           =   675
  224.       End
  225.       Begin VB.CheckBox chkShift 
  226.          Appearance      =   0  'Flat
  227.          BackColor       =   &H00E0E0E0&
  228.          Caption         =   "Shift"
  229.          ForeColor       =   &H00000000&
  230.          Height          =   315
  231.          Left            =   2880
  232.          Style           =   1  'Graphical
  233.          TabIndex        =   6
  234.          Top             =   2760
  235.          Width           =   675
  236.       End
  237.       Begin VB.CheckBox chkAlt 
  238.          Appearance      =   0  'Flat
  239.          BackColor       =   &H00E0E0E0&
  240.          Caption         =   "Alt"
  241.          ForeColor       =   &H00000000&
  242.          Height          =   315
  243.          Left            =   3750
  244.          Style           =   1  'Graphical
  245.          TabIndex        =   7
  246.          Top             =   2760
  247.          Width           =   675
  248.       End
  249.       Begin VB.ComboBox cmbKey 
  250.          BackColor       =   &H00E0E0E0&
  251.          ForeColor       =   &H00000000&
  252.          Height          =   315
  253.          Left            =   4620
  254.          Style           =   2  'Dropdown List
  255.          TabIndex        =   8
  256.          Top             =   2760
  257.          Width           =   735
  258.       End
  259.       Begin MSComDlg.CommonDialog CommonDialog1 
  260.          Left            =   5010
  261.          Top             =   300
  262.          _ExtentX        =   847
  263.          _ExtentY        =   847
  264.          _Version        =   393216
  265.       End
  266.       Begin VB.CommandButton cmdSave 
  267.          Appearance      =   0  'Flat
  268.          BackColor       =   &H00E0E0E0&
  269.          Caption         =   "&Save"
  270.          Height          =   315
  271.          Left            =   120
  272.          MaskColor       =   &H80000005&
  273.          Style           =   1  'Graphical
  274.          TabIndex        =   9
  275.          ToolTipText     =   " Save shortcut "
  276.          Top             =   3240
  277.          Width           =   945
  278.       End
  279.       Begin VB.Label Label4 
  280.          AutoSize        =   -1  'True
  281.          BackStyle       =   0  'Transparent
  282.          Caption         =   "+"
  283.          ForeColor       =   &H00FFFFFF&
  284.          Height          =   195
  285.          Left            =   1860
  286.          TabIndex        =   24
  287.          Top             =   2820
  288.          Width           =   120
  289.       End
  290.       Begin VB.Label Label1 
  291.          AutoSize        =   -1  'True
  292.          BackStyle       =   0  'Transparent
  293.          Caption         =   "+"
  294.          ForeColor       =   &H00FFFFFF&
  295.          Height          =   195
  296.          Left            =   2730
  297.          TabIndex        =   18
  298.          Top             =   2820
  299.          Width           =   120
  300.       End
  301.       Begin VB.Label Label2 
  302.          AutoSize        =   -1  'True
  303.          BackStyle       =   0  'Transparent
  304.          Caption         =   "+"
  305.          ForeColor       =   &H00FFFFFF&
  306.          Height          =   195
  307.          Left            =   4470
  308.          TabIndex        =   17
  309.          Top             =   2820
  310.          Width           =   120
  311.       End
  312.       Begin VB.Label Label3 
  313.          AutoSize        =   -1  'True
  314.          BackStyle       =   0  'Transparent
  315.          Caption         =   "+"
  316.          ForeColor       =   &H00FFFFFF&
  317.          Height          =   195
  318.          Left            =   3600
  319.          TabIndex        =   16
  320.          Top             =   2820
  321.          Width           =   120
  322.       End
  323.    End
  324.    Begin VB.Label Label9 
  325.       BackColor       =   &H00404040&
  326.       Height          =   15
  327.       Left            =   0
  328.       TabIndex        =   23
  329.       Top             =   4005
  330.       Width           =   6825
  331.    End
  332.    Begin VB.Label Label8 
  333.       BackColor       =   &H00E0E0E0&
  334.       Height          =   15
  335.       Left            =   -60
  336.       TabIndex        =   22
  337.       Top             =   0
  338.       Width           =   6735
  339.    End
  340.    Begin VB.Label Label7 
  341.       BackColor       =   &H00404040&
  342.       Height          =   4215
  343.       Left            =   6465
  344.       TabIndex        =   21
  345.       Top             =   -30
  346.       Width           =   15
  347.    End
  348.    Begin VB.Label Label6 
  349.       BackColor       =   &H00E0E0E0&
  350.       Height          =   4005
  351.       Left            =   0
  352.       TabIndex        =   20
  353.       Top             =   0
  354.       Width           =   15
  355.    End
  356.    Begin VB.Menu mnuMenus 
  357.       Caption         =   "Main Menus"
  358.       Visible         =   0   'False
  359.       Begin VB.Menu mnuProgList 
  360.          Caption         =   "Show Program List"
  361.       End
  362.       Begin VB.Menu mnuActivate 
  363.          Caption         =   "Activate when Windows starts"
  364.       End
  365.       Begin VB.Menu d1 
  366.          Caption         =   "-"
  367.       End
  368.       Begin VB.Menu mnuExit 
  369.          Caption         =   "Exit"
  370.       End
  371.    End
  372. End
  373. Attribute VB_Name = "frmMain"
  374. Attribute VB_GlobalNameSpace = False
  375. Attribute VB_Creatable = False
  376. Attribute VB_PredeclaredId = True
  377. Attribute VB_Exposed = False
  378. Option Explicit
  379. Dim blnDrag As Boolean
  380. Dim lTop As Long, lLeft As Long
  381. Dim intIndex As Long
  382. Dim strF As String
  383.  
  384. Private Sub chkCtrl_Click()
  385.     chkCtrl.FontBold = chkCtrl.Value
  386. End Sub
  387.  
  388. Private Sub chkShift_Click()
  389.     chkShift.FontBold = chkShift.Value
  390. End Sub
  391.  
  392. Private Sub chkAlt_Click()
  393.     chkAlt.FontBold = chkAlt.Value
  394. End Sub
  395.  
  396. Private Sub chkWin_Click()
  397.     chkWin.FontBold = chkWin.Value
  398. End Sub
  399.  
  400. Private Sub cmdFile_Click()
  401. On Error GoTo Err1
  402.     CommonDialog1.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly
  403.     CommonDialog1.CancelError = True
  404.     CommonDialog1.Filter = "All files (*.*)|*.*" 'displays all files
  405.     CommonDialog1.DialogTitle = "Select Target file"
  406.     CommonDialog1.ShowOpen
  407.     txtFileName.Text = CommonDialog1.FileName
  408.     strF = "I"
  409.     Exit Sub
  410. Err1:
  411. End Sub
  412.  
  413. Public Sub cmdClose_Click()
  414.     prcCloseProgram
  415. End Sub
  416.  
  417. Private Sub cmdDelete_Click()
  418. Dim intRecNo As Integer
  419. Dim lRet As Long
  420.     
  421.     Picture1.SetFocus
  422.     frmConfirm.Show vbModal
  423.     If blnRemoveHotKey = False Then Exit Sub
  424.     intRecNo = 1
  425.     
  426.     lRet = UnregisterHotKey(frmIcon.hwnd, lstvwPrograms.SelectedItem.Index)
  427.     Kill strDataFile 'delete data file
  428.     lstvwPrograms.ListItems.Remove lstvwPrograms.SelectedItem.Index 'remove selected item
  429.     prcWrite 're-write the data file
  430.     prcUnregisterAll
  431.     prcRegisterAll
  432. End Sub
  433.  
  434. Private Sub cmdHelp_Click()
  435.     Picture1.SetFocus
  436.     frmHelp.Show vbModal
  437. End Sub
  438.  
  439. Private Sub cmdHide_Click()
  440.     Picture1.SetFocus
  441.     Unload Me
  442.     Set frmMain = Nothing
  443. End Sub
  444.  
  445. Private Sub cmdLaunch_Click()
  446.     Picture1.SetFocus
  447.     If Not lstvwPrograms.SelectedItem Is Nothing Then
  448.         prcLaunch lstvwPrograms.SelectedItem.ListSubItems(1).Text & "\" & lstvwPrograms.SelectedItem.Text
  449.     End If
  450. End Sub
  451.  
  452. Private Sub cmdSave_Click()
  453. Dim lRet As Long
  454. Dim vModifierKey
  455. Dim lstItem As ListItem
  456. Dim bSave As Boolean
  457. Dim sKeys As String
  458.     
  459.     Picture1.SetFocus
  460.     If txtFileName.Text = "" Then
  461.         prcShowMsg "Select Target File name"
  462.         cmdFile_Click
  463.         Exit Sub
  464.     ElseIf Dir(txtFileName.Text, vbDirectory + vbNormal) = "" Then
  465.         prcShowMsg "Target file/folder not found" '
  466.         Exit Sub
  467.     ElseIf chkWin.Value = 0 And chkAlt.Value = 0 And chkShift.Value = 0 And chkCtrl.Value = 0 Then
  468.         prcShowMsg "Select a system key"
  469.         Exit Sub
  470.     ElseIf cmbKey.Text = "" Then
  471.         prcShowMsg "Select a key"
  472.         cmbKey.SetFocus
  473.         Exit Sub
  474.     End If
  475.     
  476.     If chkWin.Value = 1 Then sKeys = "Win"
  477.     If chkCtrl.Value = 1 Then sKeys = IIf(sKeys = "", "Ctrl", sKeys & "+Ctrl")
  478.     If chkShift.Value = 1 Then sKeys = IIf(sKeys = "", "Shift", sKeys & "+Shift")
  479.     If chkAlt.Value = 1 Then sKeys = IIf(sKeys = "", "Alt", sKeys & "+Alt")
  480.     sKeys = sKeys & "+" & cmbKey.Text
  481.  
  482.     With lstvwPrograms.ListItems
  483.         For lRet = 1 To .Count
  484.             vModifierKey = UCase(.Item(lRet).ListSubItems(2).Text)
  485.             If UCase(sKeys) = vModifierKey Then
  486.                 prcShowMsg "Selected combination of keys is already assigned to " & vbCrLf & "'" & .Item(lRet).ListSubItems(1).Text & "\" & .Item(lRet).Text & "'"
  487.                 Exit Sub
  488.             End If
  489.         Next
  490.     End With
  491.     
  492.     vModifierKey = ""
  493.     If chkWin.Value = 1 Then vModifierKey = MOD_WIN
  494.     If chkCtrl.Value = 1 Then vModifierKey = vModifierKey + MOD_CONTROL
  495.     If chkShift.Value = 1 Then vModifierKey = vModifierKey + MOD_SHIFT
  496.     If chkAlt.Value = 1 Then vModifierKey = vModifierKey + MOD_ALT
  497.     
  498.     With objPLKeys
  499.         .pKeyWin = IIf(chkWin.Value, MOD_WIN, 0)
  500.         .pKeyAlt = IIf(chkAlt.Value, MOD_ALT, 0)
  501.         .pKeyCtrl = IIf(chkCtrl.Value, MOD_CONTROL, 0)
  502.         .pKeyShift = IIf(chkShift.Value, MOD_SHIFT, 0)
  503.         .pKey = Asc(cmbKey.Text)
  504.         .pTargetFile = txtFileName.Text
  505.         
  506.         lRet = RegisterHotKey(frmIcon.hwnd, intHotKeyCount + 1, vModifierKey, Asc(cmbKey.Text))
  507.     End With
  508.     vModifierKey = ""
  509.     If lRet = 1 Then
  510.         With objPLKeys
  511.             Set lstItem = lstvwPrograms.ListItems.Add(Text:=CommonDialog1.FileTitle) ', Index:=.pHotKeyID
  512.             lstItem.ListSubItems.Add Text:=fnFilefolder(txtFileName.Text, 2)
  513.             lstItem.ListSubItems.Add Text:=sKeys
  514.         End With
  515.         prcWrite
  516.     Else
  517.         frmMsg.Label1.BackColor = vbRed
  518.         prcShowMsg "Unable to save hotkey. GetLastError returned: " & GetLastError
  519.     End If
  520.     chkWin.Value = 0
  521.     chkAlt.Value = 0
  522.     chkCtrl.Value = 0
  523.     chkShift.Value = 0
  524.     txtFileName.Text = ""
  525. End Sub
  526.  
  527. Private Sub cmdFolder_Click()
  528. Dim myShell As New Shell
  529. Dim myFolder As Folder
  530. Set myFolder = myShell.BrowseForFolder(Me.hwnd, "Select folder", 16)
  531. If Not myFolder Is Nothing Then
  532.     txtFileName.Text = myFolder.Items.Item.Path
  533. End If
  534. CommonDialog1.FileName = ""
  535. End Sub
  536.  
  537. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  538.     blnDrag = True
  539.     lTop = Y
  540.     lLeft = X
  541. End Sub
  542.  
  543. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  544.     If blnDrag Then
  545.         Me.Top = Me.Top + (Y - lTop)
  546.         Me.Left = Me.Left + (X - lLeft)
  547.     End If
  548. End Sub
  549.  
  550. Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  551.     blnDrag = False
  552. End Sub
  553.  
  554. Private Sub Form_Load()
  555. Dim intOldMode As Integer
  556.  
  557.     'to make this form always on top
  558.     Call SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
  559.     
  560.     '**** TO HIDE THE TITLE BAR ******
  561.     SetWindowLong frmMain.hwnd, GWL_STYLE, GetWindowLong(frmMain.hwnd, GWL_STYLE) And Not WS_CAPTION
  562.     intOldMode = frmMain.ScaleMode
  563.     frmMain.ScaleMode = 1
  564.     frmMain.Height = frmMain.Height - 300
  565.     frmMain.ScaleMode = intOldMode
  566.     '*********************************
  567.     lstvwPrograms.ColumnHeaders.Add Text:="File/Folder", Width:=1340
  568.     lstvwPrograms.ColumnHeaders.Add Text:="Path", Width:=3000
  569.     lstvwPrograms.ColumnHeaders.Add Text:="Shortcut key", Width:=1530
  570.     
  571.     With cmbKey
  572.         .AddItem ""
  573.         For intIndex = 65 To 90
  574.             .AddItem Chr(intIndex)
  575.         Next
  576.         For intIndex = 48 To 57
  577.             .AddItem Chr(intIndex)
  578.         Next
  579.     End With
  580.     intIndex = 0
  581.     prcLoadData
  582.     prcColorForm Me
  583.     
  584.     Me.Left = Screen.Width - Me.Width
  585.     Me.Top = Screen.Height - Me.Height
  586.     Me.Refresh
  587.     Me.Visible = True
  588. End Sub
  589.  
  590. Private Sub prcLoadData()
  591. 'this procedure is to load the hotkey details from data.dat into listview
  592. Dim lstItem As ListItem
  593. Dim strText As String
  594.  
  595.     lstvwPrograms.ListItems.Clear
  596.     intIndex = 1
  597.     Open strDataFile For Random Access Read As #1 'binary file access
  598.     With objPLKeys
  599.     Do
  600.         Get #1, intIndex, objPLKeys  'read from file. read one record at a time
  601.         If .pKey = 0 Then Exit Do 'there are no more records in file
  602.         
  603.         strText = fnFilefolder(.pTargetFile, 1)
  604.         Set lstItem = lstvwPrograms.ListItems.Add(Text:=strText) ', Index:=.pHotKeyID
  605.         
  606.         strText = fnFilefolder(.pTargetFile, 2)
  607.         lstItem.ListSubItems.Add Text:=strText
  608.         strText = ""
  609.         If .pKeyWin = MOD_WIN Then
  610.             strText = "Win"
  611.         End If
  612.         If .pKeyCtrl = MOD_CONTROL Then
  613.             strText = strText & IIf(strText = "", "Ctrl", "+Ctrl")
  614.         End If
  615.         If .pKeyShift = MOD_SHIFT Then
  616.             strText = strText & IIf(strText = "", "Shift", "+Shift")
  617.         End If
  618.         If .pKeyAlt = MOD_ALT Then
  619.             strText = strText & IIf(strText = "", "Alt", "+Alt")
  620.         End If
  621.         strText = strText & "+" & Chr(.pKey)
  622.         lstItem.ListSubItems.Add Text:=strText
  623.         intIndex = intIndex + 1
  624.     Loop While True
  625.     End With
  626.     Close #1
  627. End Sub
  628.  
  629. Private Sub prcWrite()
  630. Dim intRecNo As Integer
  631. Dim strKeys As String
  632.     intRecNo = 1
  633.     'to read record by record from binary file, use only structures.
  634.     'use an instance of a structure to write to file.
  635.     Open strDataFile For Random As #1 'binary file access
  636.     With lstvwPrograms.ListItems
  637.     intHotKeyCount = 0
  638.     For intIndex = 1 To .Count
  639.         strKeys = UCase(.Item(intIndex).ListSubItems(2).Text) 'hotkeys available in listview
  640.         
  641.         With objPLKeys
  642. '            .pHotKeyID = intIndex
  643.             If InStr(1, strKeys, "WIN", vbTextCompare) <> 0 Then .pKeyWin = MOD_WIN Else .pKeyWin = 0
  644.             If InStr(1, strKeys, "CTRL", vbTextCompare) <> 0 Then .pKeyCtrl = MOD_CONTROL Else .pKeyCtrl = 0
  645.             If InStr(1, strKeys, "SHIFT", vbTextCompare) <> 0 Then .pKeyShift = MOD_SHIFT Else .pKeyShift = 0
  646.             If InStr(1, strKeys, "ALT", vbTextCompare) <> 0 Then .pKeyAlt = MOD_ALT Else .pKeyAlt = 0
  647.             .pKey = Asc(Right(strKeys, 1))
  648.             With lstvwPrograms.ListItems.Item(intIndex)
  649.                 objPLKeys.pTargetFile = .ListSubItems(1).Text & IIf(.Text = "", "", "\" & .Text)
  650.             End With
  651.         End With
  652.         
  653.         Put #1, intIndex, objPLKeys 'write struct to file
  654.         intHotKeyCount = intHotKeyCount + 1
  655.     Next
  656.     End With
  657.     Close #1
  658. End Sub
  659.  
  660. Private Sub optUser_Click()
  661.     Picture1.SetFocus
  662. End Sub
  663.  
  664. Private Sub optPredefined_Click()
  665.     Picture1.SetFocus
  666. End Sub
  667.  
  668. 'to retrieve file name or folder from complete path and filename
  669. Private Function fnFilefolder(sz As String, i As Integer) As String
  670. Dim strText As String
  671. Dim intSlashPos As Long
  672.     strText = StrReverse(Trim(sz))
  673.     If InStr(1, strText, ".", vbTextCompare) = 0 Then
  674.         'string does not have '.', its folder name
  675.         If i = 1 Then
  676.             strText = ""
  677.         Else
  678.             strText = sz
  679.         End If
  680.     Else
  681.         'string does have '.', its file name
  682.         'folder name also have have '.', in that case,
  683.         'it wud be difficult to seperate path and file name
  684.         'so, that cannot be handled
  685.         
  686.         intSlashPos = InStr(1, strText, "\", vbTextCompare)
  687.         If i = 1 Then
  688.             'return path
  689.             strText = StrReverse(Left(strText, intSlashPos - 1))
  690.         ElseIf i = 2 Then
  691.             'return file name
  692.             strText = StrReverse(Mid(strText, intSlashPos + 1))
  693.         End If
  694.     End If
  695.     fnFilefolder = strText
  696. End Function
  697.